package net.atomtree.service;
import net.atomtree.handler.RestHandler;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by czk on 2015/12/31.
 */
public class AppService {
    /**
     * 返回101.204.243.107:8080/api/v1所有json的集合
     * 下标0的jsonArray代表正在运行的applicaion 1代表意见完成的
     * @param url
     * @return
     * @throws Exception
     */
    public static JSONArray findAllApp(StringBuffer url)throws  Exception{
        JSONArray allAPPJSONArray=new JSONArray();
        JSONArray compltedJSONArray=new JSONArray();
        JSONArray runningJSONArray=new JSONArray();
        //http://101.204.243.107:8080/api/v1
        //访问8080得到所有运行完成和正在运行的application
        String jsonArrayString=RestHandler.getApplication(url);
        //转成json数组
        JSONArray jsonArray=JSONArray.fromObject(jsonArrayString);
        for(int index=0;index<jsonArray.size();index++){
            JSONObject currJsonObejct=(JSONObject)jsonArray.get(index);
            if(judgeCompletedByJSONArray(index,jsonArray)){
                //返回true添加到已完成集合中
                compltedJSONArray.add(currJsonObejct);
            }else{
                //返回false添加到正在运行集合中
                runningJSONArray.add(currJsonObejct);
            }
        }
        allAPPJSONArray.add(0,runningJSONArray);
        allAPPJSONArray.add(1,compltedJSONArray);
        System.out.println(allAPPJSONArray);
        return allAPPJSONArray;
    }

    /**
     * 依据JSONArray中的某一个jsonArray转换成json对象度取出app是否完成的布尔值，ture代表已完成false代表正在运行
     * @param index  第几个app
     * @param jsonArray 8080返回的json数组
     * @return
     */
    public static Boolean judgeCompletedByJSONArray(int index,JSONArray jsonArray){
        JSONObject appJson=(JSONObject)jsonArray.get(index);
        JSONArray attempts=JSONArray.fromObject(appJson.get("attempts"));
        Boolean bool=(Boolean)((JSONObject)(attempts.get(0))).get("completed");
        System.out.println("bool:"+bool);
        return bool;
    }

    public static void main(String args[]){
        try {
            findAllApp(new StringBuffer("http://101.204.243.107:8080/api/v1"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
